#ifndef GLSTRUCTURE_H_
#define GLSTRUCTURE_H_

#include <GL/glew.h>
#include <glm/glm.hpp>
#include "base/GLObject.h"
#include "GLShaderConfig.h"

class GLStructure {
protected:
	GLuint programHandler;
	GLShaderConfig shaderConfig;
	glm::mat4 transformationMatrix;

public:
	GLStructure(GLuint programHandler, GLShaderConfig shaderConfig);
	virtual ~GLStructure();
	virtual void update(glm::mat4 viewMatrix, glm::mat4 modelMatrix) = 0;
	GLuint getProgramHandler() { return programHandler; };
	void transform(glm::mat4 transformationMatrix) { this->transformationMatrix = transformationMatrix; };
};


#endif /* GLSTRUCTURE_H_ */
